class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer, Integer> m = new HashMap<>();	//创建哈希表
        //循环( 先查，没查到再存！【因为该答案可以由两个元素分别查询到正确答案】)
        for (int i = 0; i < nums.length; i++) {
            if (m.get(target - nums[i]) != null) {	//查询该下标元素对应答案的哈希值（这里面就是下标）
                return new int[]{m.get(target - nums[i]), i};
                //返回该值（i）对应答案（target-nums[i]）对应的哈希值[m.get(target - nums[i])]、和该下标(i)
            }
            m.put(nums[i], i);	//将数组值和下标一一对应
        }
        return new int[]{0, 0};	//没查到答案则返回新建数组[0,0]
    }
}
